perm filename RECAUX.HDR[1,3] blob
sn#523928 filedate 1980-07-23 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00008 ENDMK
Cā;
DEFINE RCLASS "<>" =<RECORD_CLASS>;
DEFINE RPTR "<>" = <RECORD_POINTER>;
DEFINE RANY "<>" = <RECORD_POINTER(ANY_CLASS)>;
DEFINE RNULL "<>" = <NULL_RECORD>;
COMMENT REQUIRE "SYS:RECORD.DEF" SOURCE_FILE;
EXTERNAL RECORD!CLASS $CLASS(INTEGER RECRNG,HNDLER,RECSIZ;
INTEGER ARRAY TYPARR;
STRING ARRAY TXTARR);
COMMENT SYSTEM DEFAULT HANDLER PROCEDURE;
EXTERNAL RECORD!POINTER(ANY!CLASS) PROCEDURE $REC$(INTEGER OP;
RECORD!POINTER(ANY!CLASS) R);
COMMENT PROCEDURE TO CALL A RECORD'S HANDLER PROCEDURE;
EXTERNAL RECORD!POINTER(ANY!CLASS) PROCEDURE $RECFN(INTEGER OP;
RECORD!POINTER(ANY!CLASS) R);
COMMENT OP VALUES FOR $REC$;
DEFINE ALLOCATE!RECORD = 1;
DEFINE MARK!SUBFIELDS = 4;
DEFINE DELETE!RECORD = 5;
COMMENT BITS FOR TYPARR[0];
DEFINE NODELC = 1; COMMENT DO NOT DELETE RECORDS OF THIS CLASS (VIA GC);
DEFINE CMPLDC = 2; COMMENT THIS RECORD CLASS IS COMPILED-IN;
DEFINE HASRPS = 4; COMMENT HAS RPTR / RPTR ARRAY;
DEFINE HASSTR = 10; COMMENT HAS STRING / STRING ARRAY SUBFIELDS;
COMMENT IF HAVE REFERENCE SUBFIELDS, THEN
BETTER HAVE TYPARR[0] WITH HASSTR & HASRPS ON;
EXTERNAL PROCEDURE $RECGC;
DEFINE MIN$SB = 3;
DEFINE MAX$SB = 16;
EXTERNAL INTEGER ARRAY $SPCAR[MIN$SB:MAX$SB];
DEFINE $SB!BLKSIZ=0; COMMENT SIZE OF BLOCKS;
DEFINE $SB!TRIGGER=1; COMMENT COUNT DOWN FOR RECGC;
DEFINE $SB!TGRMIN=2; COMMENT MINIMUM NUMBER PERMITTED FOR TRIGGER SETTING;
DEFINE $SB!TINUSE=3; COMMENT TOTAL NUMBER OF RECORDS IN USE;
DEFINE $SB!TUNUSED=4; COMMENT TOTAL UNUSED BUFFERS;
DEFINE $SB!FBLIST=5; COMMENT FREE BUFFER LIST;
DEFINE $SB!FULLS=6; COMMENT FULL BUFFER LIST;
DEFINE $SB!CULPRT=7; COMMENT COUNTED UP EACH TIME GC IS TRIGGERED BY THIS SPACE;
COMMENT GET AT FIELDS USING MEMORY. E.G., MEMORY[$SPCAR[4]+$SB!TRIGGER] ;
EXTERNAL INTEGER PROCEDURE RECLEN(RPTR(ANY_CLASS) R);
EXTERNAL INTEGER PROCEDURE RECTYPE(RPTR(ANY_CLASS) R);
EXTERNAL RPTR($CLASS) SIMPLE PROCEDURE $RECTYPE(RPTR(ANY_CLASS) R);
EXTERNAL INTEGER PROCEDURE FLDTYPE(RPTR(ANY_CLASS) R;INTEGER IX);
EXTERNAL STRING SIMPLE PROCEDURE CVRCS(RPTR($CLASS) RC);
EXTERNAL STRING SIMPLE PROCEDURE CVRTS(INTEGER RT);
EXTERNAL INTEGER PROCEDURE FLDREF(RPTR(ANY_CLASS) R;STRING ID);
EXTERNAL RPTR(ANY_CLASS) PROCEDURE BLDNRC(INTEGER RT);
EXTERNAL RPTR(ANY_CLASS) PROCEDURE CHKREC(RPTR(ANY_CLASS)R;INTEGER T);
EXTERNAL RPTR($CLASS) PROCEDURE CLSFND(STRING ID);
EXTERNAL RPTR(ANY_CLASS) PROCEDURE CPYREC(RPTR(ANY_CLASS) R1,R2(NULL_RECORD));
EXTERNAL RECORD_CLASS CELL(RECORD_POINTER(ANY_CLASS) CAR,CDR);
EXTERNAL RECORD_CLASS RLIST(INTEGER LEN;RPTR(CELL) FIRST,LAST);
EXTERNAL RPTR(CELL) PROCEDURE CONS(RPTR(ANY_CLASS) A,D);
EXTERNAL RPTR(CELL) PROCEDURE APPEND(RPTR(CELL) L1, L2);
EXTERNAL RPTR(CELL) PROCEDURE LIST2(RPTR(ANY_CLASS) C1,C2);
EXTERNAL RPTR(ANY_CLASS) RECURSIVE PROCEDURE SECOPY(RPTR(ANY_CLASS) C);
EXTERNAL BOOLEAN PROCEDURE IN_CL(RPTR(ANY_CLASS) C;RPTR(CELL) L);
EXTERNAL RPTR(ANY_CLASS) PROCEDURE LLOP(REFERENCE RPTR(CELL) C);
EXTERNAL RPTR(CELL) PROCEDURE CL_LEN(RPTR(CELL) C);
EXTERNAL RPTR(ANY_CLASS) PROCEDURE CONSON(RPTR(ANY_CLASS) X;REFERENCE RPTR(CELL) C);
EXTERNAL PROCEDURE RLADD(RPTR(RLIST) RL;RPTR(ANY_CLASS) REC;INTEGER N);
EXTERNAL INTEGER PROCEDURE RLREM(RPTR(RLIST) RL;RPTR(ANY_CLASS) REC;
INTEGER HOWMANY(1));
EXTERNAL RPTR(ANY_CLASS) PROCEDURE RLNREM(RPTR(RLIST) RL;INTEGER N);
EXTERNAL INTEGER PROCEDURE RLINX(RPTR(RLIST) RL;RPTR(ANY_CLASS) REC);
EXTERNAL RPTR(ANY_CLASS) PROCEDURE RLNTH(RPTR(RLIST) RL;INTEGER N);
EXTERNAL RPTR(RLIST) PROCEDURE RLCOPY(RPTR(RLIST) RL,RL2(NULL_RECORD));
EXTERNAL MATCHING RECURSIVE PROCEDURE
MAPRLIST(RPTR(RLIST) RL;REFERENCE RPTR(ANY_CLASS) R);
REQUIRE "RECAUX.REL[SUB,SYS]" LOAD_MODULE;